#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 1.看代码写结果
'''
v1 = [1,2,3,4,5]
v2 = [v1,v1,v1]
v1.append(6)
print(v1) # [1, 2, 3, 4, 5, 6]
print(v2) # [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]
# v2列表数据会跟着v1一起变化。
'''
# 2.看代码写结果
'''
v1 = [1,2,3,4,5]
v2 = [v1,v1,v1]
v2[1][0] = 111
v2[2][0] = 222
print(v1)
print(v2)

# [222,2,3,4,5]因为v2[2][0]更改的是v1[0]的位置，而且是后更改的。
'''

# 3.看代码写结果，并解释每一步的流程。
'''
v1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
v2 = {}
for item in v1:                 # 循环v1列表的值，并赋值给item
    if item < 6:
        continue                # 如果tiem小于6则返回终止当次循环，并回到循环起始位置
    if 'k1' in v2:
        v2['k1'].append(item)   #如果'k1'在v2字典里，则将'k1'键相对应的值增加一个item
    else:
        v2['k1'] = [item ]      #如果上述两个条件都不成立，则将'k1' = item添加到v2字典里
print(v2)                       #{'k1': [6, 7, 8, 9]}
'''

# 4.简述深浅拷贝？
'''
浅拷贝只拷贝第一层。
深层拷贝，拷贝所有可变数据类型。
'''

# 5.看代码写结果
'''
import copy

v1 = "alex"
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)

print(v1 is v2) # True
print(v1 is v3) # True
'''

# 6.看代码写结果
'''
import copy

v1 = [1,2,3,4,5]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)

print(v1 is v2) # False
print(v1 is v3) # False
'''

# 7.看代码写结果
'''
import copy

v1 = [1,2,3,4,5]

v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)

print(v1[0] is v2[0]) # True
print(v1[0] is v3[0]) # True
print(v2[0] is v3[0]) # True
'''

# 8.看代码写结果
'''
import copy

v1 = [1,2,3,4,5]

v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)

print(v1[0] is v2[0]) # True
print(v1[0] is v3[0]) # True
print(v2[0] is v3[0]) # True
'''

# 9.看代码写结果
'''
import copy

v1 = [1,2,3,{"name":'武沛齐',"numbers":[7,77,88]},4,5]

v2 = copy.copy(v1)

print(v1 is v2) # False

print(v1[0] is v2[0]) # Ture
print(v1[3] is v2[3]) # Ture

print(v1[3]['name'] is v2[3]['name']) # True
print(v1[3]['numbers'] is v2[3]['numbers']) # True
print(v1[3]['numbers'][1] is v2[3]['numbers'][1]) # True
'''

# 10.看代码写结果
'''
import copy

v1 = [1,2,3,{"name":'武沛齐',"numbers":[7,77,88]},4,5]

v2 = copy.deepcopy(v1)

print(v1 is v2) # False

print(v1[0] is v2[0]) # True
print(v1[3] is v2[3]) # False

print(v1[3]['name'] is v2[3]['name']) # True
print(v1[3]['numbers'] is v2[3]['numbers']) # False
print(v1[3]['numbers'][1] is v2[3]['numbers'][1]) # True
'''

# 11.简述文件操作的打开模式
'''
读：r 只读，r+ 读：默认从0的光标开始读，写：从光标所在位置开始写
写：w 只写，w+ 读：默认光标在0，写：每次打开都会先清空
追加：a 追加，a+ 读：默认光标在最后，写：不管光标在哪都写到最后。
'''

# 12.请将info中的值使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
'''
info = ['骗子，', '不是', '说', '只有', "10", '个题吗？']
txt = open('readme.txt', mode='w', encoding='utf-8')
txt.write('_'.join(info))
txt.close()
'''

# 13.请将info中的值使用 "_" 拼接起来并写入到文件 "readme(2).txt" 文件中。
'''
info = ['骗子，', '不是', '说', '只有', 10, '个题吗？']
for i in range(0, len(info)):
    info[i] = str(info[i])
txt = open('readme(2).txt', mode='w', encoding='utf-8')
txt.write('_'.join(info))
txt.close()
'''

# 14.请将info中的所有键 使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
# 1. 请将info中的所有键 使用 "_" 拼接起来并写入到文件 "readme14-1.txt" 文件中。
'''
info = {'name': '骗子', 'age': 18, 'gender': '性别'}
ls = list()
for i in info:
    ls.append(i)
txt = open('readme14-1.txt', mode='w', encoding='utf-8')
txt.write('_'.join(ls))
txt.close()
'''

# 2. 请将info中的所有值 使用 "_" 拼接起来并写入到文件 "readme14-2.txt" 文件中。
'''
info = {'name': '骗子', 'age': 18, 'gender': '性别'}
ls = list()
for i in info.values():
    ls.append(str(i))
txt = open('readme14-2.txt', mode='w',encoding='utf-8')
txt.write('_'.join(ls))
txt.close()
'''

# 3. 请将info中的所有键和值按照 "键|值,键|值,键|值" 拼接起来并写入到文件 "readme14-3.txt" 文件中。
'''
info = {'name': '骗子', 'age': 18, 'gender': '性别'}
ls = list()
count = 0
for k, v in info.items():
    ls.append('%s|%s' % (str(k), str(v)))
txt = open('readme14-3.txt', mode='w', encoding='utf-8')
txt.write(str(','.join(ls)))
txt.close()
'''

# 15.写代码
#
# 要求：
#     如文件 data.txt 中有内容如下：
#
#     wupeiqi|oldboy|wupeiqi@xx.com
#     alex|oldboy|66s@xx.com
#     xxxx|oldboy|yuy@xx.com
#
#     请用代码实现读入文件的内容，并构造成如下格式：
#     info = [
#         {'name':'wupeiqi','pwd':'oldboy','email':'wupeiqi@xx.com'},
#         {'name':'alex','pwd':'oldboy','email':'66s@xx.com'},
#         {'name':'xxxx','pwd':'oldboy','email':'yuy@xx.com'},
#     ]
'''
txt = open('data.txt', mode='r', encoding='utf-8')
ls = list()
for line in txt.readlines():
    info = dict()
    value = (line.strip().split('|'))
    info['name'] = value[0]
    info['pwd'] = value[1]
    info['email'] = value[2]
    ls.append(info)
print(ls)
txt.close()
'''